// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	10/16/2014 9:40:38 PM				
// -----------------------------

#ifndef _ComputePass_h
#define _ComputePass_h

#include "RenderPass.h"

class ComputePass : public RenderPass
{
public:
	ComputePass(RenderManager* lpRenderManager, const RenderTargets& targets);
	virtual ~ComputePass();

	virtual void	Init(Application* lpApp);
	virtual void	Apply(Application* lpApp, Scene* lpScene);
	virtual void	UpdateTargets(Application* lpApp, const RenderTargets& targets);

private:

	IComputeShader*	m_lpLightShader;
	IBuffer*		m_lpDispatchBuffer;
	IBuffer*		m_lpLightBuffer;

	UInt32			m_ThreadCountX;
	UInt32			m_ThreadCountY;
	UInt32			m_ThreadCountZ;

	ComputePass(const ComputePass& refComputePass);
	ComputePass& operator=(const ComputePass& refComputePass);
};

#endif